/* 公共-表单验证 */
export default{

    /**
     * 正则验证
     * @param reg 正则表达式
     * @param v 验证的值
     * @returns 符合-true; 不符合-false;
     */
    matchReg(reg, v){
        if(!(reg.test(v))){
            return false;
        }else{
            return true;
        }
    },

    /** 
     * 是否是-正整数（包含0）
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isInt(v){
        return this.matchReg(/^([1-9]\d*|[0])$/, v);
    },
    
    /** 
     * 是否是-整数（包含0，可输入负数）
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isPosOrNegInt(v){
        return this.matchReg(/^(((-)?\+?[1-9]\d*)|[0])$/, v);
    },

    /** 
     * 是否是-正数/正小数（保留2位，包含0）
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isFloat(v){ // /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/; 这个也可以
        return this.matchReg(/^(([1-9]\d*)|0)(\.\d{1,2})?$/, v);
    },

    /** 
     * 是否是-数字
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isNumber(v){
        return this.matchReg(/^[0-9]+.?[0-9]*$/, v);
    },

    /** 
     * 是否是-手机号
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isPhone(v){
        return this.matchReg(/^1[3-9]\d{9}$/, v);
    },

    /** 
     * 是否是-登录密码
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isLPass(v){
        return this.matchReg(/^[\.A-Wa-z0-9_-]{6,18}$/, v);
    },
    /**
	 * 错误提示：登录密码验证（登录密码由6-18位大小写字母、数字、下划线、减号组成）
	 */
	ERROR_LOGIN_PASS: '登录密码由6-18位大小写字母、数字、下划线、减号组成',

    /** 
     * 是否是-支付密码
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isPayPass(v){
        return this.matchReg(/^[0-9]{6}$/, v);
    },
    /**
	 * 错误提示：支付密码验证（支付密码由6位纯数字组成）
	 */
    ERROR_PAY_PASS: '支付密码由6位纯数字组成',
    
    /**
     * 验证-身份证号码
     * @param {*} v 传入的值
     */
    isIdCard(v){
        return this.matchReg(/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, v);
    },
    /**
	 * 错误提示：身份证号码验证（身份证号码为18位数字组成，最后一位可能是X或者x）
	 */
    ERROR_ID_CARD: '身份证号码由18位数字组成（最后一位可为X或者x）',

    /** 
     * 是否是-验证码
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isCode(v){
        return this.matchReg(/^[0-9]{4}$/, v);
    },

    /** 
     * 是否是-时间格式
     * @param v 传入的值
     * @returns true-是；false-不是；
     */
    isDate(v){
        let fg = false;
        
        try {
            if(v.indexOf('-') != -1){
                v = v.replace(/-/g, '/');// 兼容ios处理
            }
            if(isNaN(v) && !isNaN(Date.parse(v))){
            　　fg = true;
            }
        } catch (error) {
            fg = false;
        }

        return fg;
    },

    /**
     * 去掉字符串前后空格
     * @param v 操作的值
     * @returns 新的字符串
     */
    trim(v){
        v = v+'';
        return v.replace(/(^\s*)|(\s*$)/g, '');
    },

    /**
     * 去掉字符串所有空格
     * @param v 操作的值
     * @returns 新的字符串
     */
    trimAll(v){
        v = v+'';
        return v.replace(/\s*/g, '');
    }

}
